Transportation of main memory and intermediate memory contents

ABSTRACT

A nonvolatile memory module. The module includes a nonvolatile memory array and a connector allowing the array to make connection with a host system. A memory controller operates to either create an image of a nonvolatile intermediate memory in response to an imaging request or populate a nonvolatile intermediate memory in response to an installation request.

BACKGROUND

[0001] 1. Field

[0002] This disclosure relates to intermediate memory systems, moreparticularly to those using nonvolatile memory.

[0003] 2. Background

[0004] Intermediate memory has several useful applications. For example,a personal computer uses a cache memory to store frequently accesseddata in a faster memory than that used for the main memory. Similarly,placing frequently used data in a smaller memory saves time in seekingand reading the data from a larger memory.

[0005] Other types of intermediate memory are used as well. For example,portable electronic devices that communicate with a computer orworkstation may use the hard disk of the computer as its main memory.They use the local memory in the device as an intermediate storage.Similarly, in a distributed computing environment, each workstationconnected to the central server or repository may have a local storageto avoid having to transport the same data across the networkunnecessarily.

[0006] In many applications, the local store is a volatile memory thatdoes not retain its data upon loss of power. However, it is possible touse nonvolatile memory, allowing retention of the data in theintermediate storage. Currently, no know systems make any effort tocreate or store images of the intermediate storage. However, thisability would provide several advantages for manufacturers of electronicdevices, among others.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The invention may be best understood by reading the disclosurewith reference to the drawings, wherein:

[0008]FIG. 1 shows one embodiment of an electronic device having anonvolatile intermediate memory module, in accordance with theinvention.

[0009]FIG. 2 shows an alternative embodiment of a nonvolatileintermediate memory module, in accordance with the invention.

[0010]FIG. 3 shows one embodiment of a method to create an image of anintermediate memory, in accordance with the invention.

[0011]FIG. 4 shows one embodiment of a method to populate anintermediate memory, in accordance with the invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

[0012] Several examples of use of intermediate memory exist.Intermediate storage or memory, terms that will be used interchangeablyhere, is used in computers, distributed computing environments, a widerange of consumer electronic devices, among many others. For ease ofdiscussion and to promote understanding of the invention, however, aninitial example of a computer using a cache memory as the intermediatememory will be used. This is not intended to limit application of theinvention or the scope of the claims in any way.

[0013] Turning now to FIG. 1, it can be seen that a host system 10 has acentral processing unit 16, a main memory 14, and an intermediate memorymodule 12. Intermediate memory module 12 may have a dedicated memorycontroller 20. Alternatively, the central processing unit or otherprocessor in the system may act as the memory controller. The memorymodule also includes a nonvolatile (NV) memory array 18. The memorymodule may be a separate device from the CPU, as shown here, or it mayreside coincident with the CPU. Similarly, the nonvolatile memory arraymay reside coincident with the memory controller, or as resideseparately from the memory controller.

[0014] For a memory array or controller that resides separately, theconnector 26 may be a back plane connector. For those residingcoincident with the CPU, the connector 26 may comprises a trace line ona printed circuit board. An alternative embodiment is shown in FIG. 2,wherein the memory module 12 is contained in an external chassis to thehost system 10. The connector 26 allows connection between the hostsystem 10 and the memory module 12. Again, the memory controller may bea dedicated controller in the chassis, or the central processing unit orother system processor may assume the function of a memory controllerwhen the memory module 12 is connected.

[0015] The nonvolatile memory array 18 that is part of memory module 12may be any type of persistent memory, one that retains its contents evenafter loss of power. A particularly well-suited memory technology forthe context of this invention is polymer ferroelectric memory arrays.Generally, this type of memory comprises a layer of polymer materialhaving ferroelectric properties sandwiched between layers of metal. Thelayers of metal are patterned to define word lines and bit lines as arecommonly used in addressing memory cells. The region of polymer betweenthe word line and bit line cross over points become the memory cells.Manipulation of the voltages on the word lines and bit lines can causeschanges in the polarization state of the ferroelectric polymer, with onestate being defined as a data ‘1’ and the opposite polarization statebeing defined as a data ‘0.’

[0016] The polymer ferroelectric memories generally do not requireseparate circuits of transistors for each cell. Therefore, they aresimpler to manufacture, as well as denser in population. This provides alarge capacity, nonvolatile memory array that is not very expensive.Other types of nonvolatile memory are also within the scope of theinvention, including volatile memory with a battery backup, as thebattery will prevent the memory from losing its contents when the mainpower is turned off. Such a large, nonvolatile memory array providesopportunities in management of memory in various types of system thatwere not previously available.

[0017] This can be seen using the example of a computer using cachememory as an intermediate storage. When most computers are manufactured,the manufacture images a ‘gold’ image of the main memory, typically adisk drive. However, no current techniques or apparatuses exist thatallow a ‘gold’ image of a cache memory to be made. Generally, a cachememory only reaches true effectiveness after the system has been usedfor an extensive period of time.

[0018] The effectiveness of cache memory in the computer example lies inits ability to allow the CPU to avoid having to access the main memory.The main memory is larger and requires more seeking prior to locatingthe data for which the CPU is looking. Many main memory technologies arealso slower than those memories used for cache memory. This increasesthe amount of time needed to satisfy each request, slowing the overallprocessing speed of the system and reducing the efficiency. Manydifferent techniques exist in which the cache memory is populated withfrequently used data, and analyses are run to bring data with a highprobability of access to the cache memory.

[0019] In one application of the invention, the memory controller ofFIG. 1 may create an image of the nonvolatile intermediate memory orcause the nonvolatile intermediate memory to be populated. For example,once a manufacturer has obtained a populated cache memory in ademonstration or test machine, the system may make a copy of the cacheonto the main storage. This copy may be used for many purposes.

[0020] Among those may be methods to copy the cache image ontounpopulated cache memories of other systems being manufactured. Thisprovides the new systems with a populated cache memory, increasing theeffectiveness of the new system right off the factory floor. Otherapplications may be in restoration of a system to a known cache state,such as for those systems used in testing and debugging of programs.With the ‘gold’ cache image contained within the ‘gold’ main memoryimage, the ability to replicate the cache contents on the manufacturingfloor becomes relatively simple. For example, a driver could be includedas part of the operating system that checks the main memory to determineif a copy of the cache resides within. As will be discussed later withreference to FIGS. 3 and 4, a designator may be used that will serve tonotify the memory controller as to the location from which the cachecontents should first be accessed.

[0021] Referring now to FIG. 3, one embodiment of a method to create animage of an intermediate memory will be discussed. At 30, an activationsignal will be received. The activation signal indicates that a copy ofthe nonvolatile intermediate memory contents should be made. Generally,the activation signal will be some sort of shut down signal, or a signalindicating that no further changes to the memory are to be made. Thisavoids any changes being made to the intermediate memory contents duringthe copying of those contents.

[0022] A reserved area of the main memory is designated at 32. Anexample of a reserved area is shown at 22 of FIG. 1. The contents of thereserved area will not be moved to intermediate storage. In the personalcomputer example, the reserved area will not be ‘cached.’ Again, thisprevents changes being made to both the intermediate memory and the mainmemory. The reserved area may be designated at manufacture of themachine, during system initialization, periodically throughout systemoperation or each time the imaging process is initiated. For thoseinstances where the reserved area is already designated, determining thereserved area will comprise accessing that area in preparation fortransfer of data.

[0023] Returning to FIG. 3 at 34, the contents of the intermediatememory are copied to the reserved area. In an alternative embodiment, itmay be desirable to copy other parts of the main memory to the reservedarea as shown at 40. This may occur in any situation in which it isdesirable to recreate a portion of the main memory to a known state.This is an optional step.

[0024] The designator discussed above is set at 36. The state of thedesignator is changed to indicate that the host system should access theintermediate storage contents from the main memory initially, instead ofaccessing the intermediate storage directly. This process will bediscussed in more detail with reference to FIG. 4. The designator maycomprise many different types of indicators. In the example of FIG. 1,the designator is at least one bit stored in the reserved area of themain storage at 24.

[0025] The designator may be stored just about anywhere. However, in thecomputer manufacturing example above, if the main memory is removed fromthe current host system and installed in another host system to populatethe other host system's cache, the designator would have to be residenton the other host. Otherwise, the new host would not detect thedesignator and would not access the copy of the intermediate memoryresiding on the main memory at system initialization. Removal of themain memory from the host is an option shown at 38.

[0026] Once a copy of a populated intermediate storage exists, it ispossible to replicate it or use it to restore systems. An embodiment ofthis is shown in FIG. 4. For purposes of discussion here, thisreplication or restoration process will be referred to as aninstallation. The copy of the intermediate memory is being installed ineither the same intermediate memory, or another intermediate memory.Typically, this process will occur at initialization of the host system.

[0027] In FIG. 4, the initialization of the host system occurs at 50.The host system detects whether or not the designator, discussed above,indicates that an installation should occur at 52. If the designator isnot selected, the system operates ‘normally’ at 54. If it does indicatean installation should occur, the host system accesses a reserved areain the host system main memory at 56. The contents of the reserved areaare then copied to the intermediate memory at 58. As mentioned above, ifdesired, some of the contents of the reserved area may pertain to otherareas of the main memory. If so, those contents are copied back to theother areas at 60. Finally, the install designator is reset or clearedat 62. This is usually accomplished by setting the predetermined numberof bits to a different state, where the different state indicates thatthe installation from main memory to intermediate memory does not needto occur.

[0028] Typically, these processes will be implemented by software in thehost system. For example, a driver resident on the new host system maybe the entity that determines the state of the designator or flag thatindicates whether an install should occur. Similarly, a driver residenton the host system may also initiate the imaging process that results inthe contents of the intermediate storage being copied to the mainstorage upon activation.

[0029] If the methods of the invention are implemented in software, thatsoftware will typically comprise machine-readable code that implementthe methods of the invention when that code is executed. The code may becontained in some type of article, such as a diskette or compact disc.Similarly, it may be contained in a downloadable file.

[0030] In this manner, systems using intermediate memory will have thecapacity to have a ‘pre-warmed’ intermediate memory upon systeminitialization. This avoids the delays that typically occur while theintermediate storage is populated enough to increase system efficiency.

[0031] Thus, although there has been described to this point aparticular embodiment for a method and apparatus for transporting ofmain and intermediate memory contents, it is not intended that suchspecific references be considered as limitations upon the scope of thisinvention except in-so-far as set forth in the following claims.

What is claimed is:
 1. A nonvolatile memory module, comprising: a) anonvolatile memory array; b) a connector operable to connect thenonvolatile memory array to a host system; and c) a memory controlleroperable to: i) create an image of a nonvolatile intermediate memory inresponse to an imaging request; and ii) populate a nonvolatileintermediate memory in response to an installation request.
 2. Thenonvolatile memory module of claim 1, wherein the nonvolatile memoryarray further comprises a polymer ferroelectric memory array.
 3. Thenonvolatile memory module of claim 1, wherein the memory controllerfurther comprises a dedicated memory controller.
 4. The nonvolatilememory module of claim 1, wherein the memory controller furthercomprises a central processing unit on the host system acting as amemory controller.
 5. The nonvolatile memory module of claim 1, whereinthe memory controller is further operable to change the state of adesignator based upon the completion of one of either the imagingrequest or the installation request.
 6. The nonvolatile memory module ofclaim 1, wherein the nonvolatile memory array resides coincident withthe memory controller.
 7. The nonvolatile memory module of claim 1,wherein the nonvolatile memory array resides separately from the memorycontroller.
 8. A method of creating an image of an intermediate memory,the method comprising: a) receiving an activation signal from a hostsystem; b) determining a reserved area on a main memory device in thehost system; c) copying contents of an intermediate memory to thereserved area; and d) changing the state of a designator to a state thatindicates a copy of the intermediate memory exists in the reserved area.9. The method of claim 8, wherein the method further comprises makingcopies of at least one other area of the main memory to the reservedarea.
 10. The method of claim 8, wherein the method further comprisesremoving the main memory from the host system.
 11. The method of claim10, wherein the method further comprises transporting the main memory toa new host system.
 12. The method of claim 8, wherein determining areserved area further comprises accessing a predetermined area.
 13. Themethod of claim 8, wherein determining a reserved area further comprisesperforming an analysis of possible areas and selecting one of thepossible areas as the reserved area.
 14. The method of claim 8, whereinchanging the state of a designator further comprises setting apredetermined number of bits to a predetermined state.
 15. The method ofclaim 14, wherein the predetermined number of bits reside in thereserved area.
 16. An article containing machine-readable code that,when executed, causes a machine to: a) receive an activation signal froma host system; b) determine a reserved area on a main memory device inthe host system; c) copy contents of an intermediate memory to thereserved area; and d) change the state of a designator to a state thatindicates a copy of the intermediate memory exists in the reserved area.17. The method of claim 8, wherein the article contains further codethat, when executed, causes the machine to make copies of at least oneother area of the main memory to the reserved area.
 18. The article ofclaim 16 wherein the article is selected from the group comprised of: adiskette, a downloadable file, and a compact disc.
 19. A method ofinstalling contents of an intermediate memory, the method comprising: a)determining if a designator has been set to a predetermined state; b) ifthe designator has been set to the predetermined state: i) accessing areserved area of a main memory on a host system; ii) copying contents ofthe reserved area to an intermediate memory; and iii) setting thedesignator to a different predetermined state.
 20. The method of claim19, wherein the method further comprises copying contents of thereserved area to at least one other area of the main memory.
 21. Themethod of claim 19, wherein setting the designator farther comprisessetting the value of at least one bit to a predetermined state.
 22. Themethod of claim 21, wherein the bit resides in the reserved area.
 23. Anarticle containing machine-readable code that, when executed, causes amachine to: a) determine if a designator has been set to a predeterminedstate; b) if the designator has been set to the predetermined state: i)accessing a reserved area of a main memory in a host system; ii) copycontents of the reserved area to an intermediate memory; and iii) setthe designator to a different predetermined state.
 24. The method ofclaim 23, wherein the article contains further code that, when executed,causes the machine to copy contents of a reserved area to at least oneother area of the main memory.